package com.gzy.rpsm.property.pojo;


import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDate;

@Data
@ApiModel("建筑信息")
public class Building implements Cloneable {
    @ApiModelProperty("建筑id")
    private Integer building_id;
    @ApiModelProperty("建筑编号")
    private String building_code;
    @ApiModelProperty("建筑名称")
    private String building_name;
    @ApiModelProperty("建筑状态")
    private Short building_status;
    @ApiModelProperty("建筑楼层数")
    private Short building_floors;
    @ApiModelProperty("建成时间")
    private LocalDate completed_date;
    @ApiModelProperty("设计寿命")
    private Short design_life;
    @ApiModelProperty("产权年限")
    private Short ownership;


    /**
     * 克隆对象
     * 只能创建对象的浅拷贝（shallow copy）。
     * 如果Building类包含对其他对象的引用,并且这些对象也需要被克隆以保持一致性，
     * 则需要实现一个深拷贝（deep copy）的逻辑。
     * 通常涉及到递归地克隆对象图中的所有对象。
     * @return
     * @throws CloneNotSupportedException
     */
    @Override
    public Building clone() throws CloneNotSupportedException {
        return (Building) super.clone();
    }
}